There is still a need for experimental results concerning phase modulation and heterodyne architectures. There is also a need for reliable modular interconnection of hardware devices at Terahertz frequencies.
Furthermore, the antenna efficiency reported on silicon integrated antennas is still poor.
In parallel to the effort to develop terahertz transmitters and receivers capable of transmitting and receiving wideband modulated signals, the research community works also on the terahertz electromagnetic propagation modelling.
For the terahertz waves, as for radio waves, knowing the propagation model is important in order to well conceive and dimension the communication system, in particular for the digital part (Modulation and coding scheme) and the antenna design.
Only few models are actually available for the terahertz propagation. In document Kallfass et al., discussed hereinabove, one of the first models, developed by the HSCA (Harvard-Smithsonian Center for Astrophysics) is used. The model, which is available under a freeware that can be downloaded from the HSCA website, is called “am” for Atmospheric Model. The “am” model makes it possible to perform radiative transfer computations from microwave to sub-millimeter wavelengths. With this model, one can see that above around 350 GHz, for example, the humidity has no effect and the attenuation is more severe. This “am” model is available for outdoor and for long distance communications.
Recently, some measurements/modelling efforts are also directed to better understanding the behavior/propagation of the terahertz waves on specific scenarios completely different from those that have been considered for building the “am” model.
Document Sebastian Rey at al., “On Propagation Characteristics of Waveguide-like ABS-structures in 60 GHz and 300 GHz communications”, IRMMW THz 2013, Mainz, Germany and document Alexander Fricke et al., “Reflection and transmission properties of plastic materials at THz frequencies”, IRMMW THz 2013, Mainz, Germany investigate the behavior of the terahertz waves in indoor and intra-machine communications in order to characterize and determine the way that the terahertz waves propagate in such environment.
Simple modulation and coding schemes (MCS) are more appropriate for ultra high speed communications. The complexity must be as low as possible in order to provide an efficient implementation. Some MCS already used in high speed wire communications can be used in terahertz wireless communications like BPSK or OOK.
Line coding, known in wire communications, can be implemented in order to shape the spectrum. Coding technics can be used such as 8B10B (see document Widmer et al., “A DC-Balanced, Partitioned-Block, 8B/10B Transmission Code”, IBM Journal of Research and development, vol. 27, No. 5, September 1983, pp. 440-451.), 64B66B (see document Hajduczenia, “64b/66b line code”, proposal for 10 Gigabit Ethernet, IEEE 802.3), MB810 (see document Young Kim et al., “White paper on the MB810 Line Code for 10 GbE”, proposal for 10 Gigabit Ethernet (IEEE 802.3) and document US2005/0012646). These techniques are implemented in PCI express, Gigabit Ethernet, DVI, HDMI and many other standards.
A line code is implemented in order to shape the spectrum for the communication medium. For example, the 8B10B line coding is used to remove the DC components so that the spectrum of the bitstream has no power at the null frequency. A DC free bitsream is desirable since the null frequency is generally filtered by the decoupling capacitors that are used between the different stages of the transceivers (filters, amplifiers . . . etc.).
Document Widmer et al., “A DC-Balanced, Partitioned-Block, 8B/10B Transmission Code”, IBM Journal of Research and development, vol. 27, No. 5, September 1983, pp. 440-451, discloses a DC free coding scheme, called 8B10B, wherein each 8 bits are coded into 10 bits and a status information obtained from the previous encoding. The idea is to balance continuously between the ones and the zeros so that at each time, the encoded bitstream has exactly the same number of ones as the number of zeros so that the bitstream may be DC free. The DC free encoding modifies the inputted bitstream into an output bitstream having a bounded digital sum variation. The digital sum variation (DSV) is computed from the running digital sum (RDS) as follows (after modulating the bitstream with 1 and −1):
      R    ⁢                  ⁢    D    ⁢                  ⁢    S    =            ∑              n        =        I            J        ⁢          y      n      
The digital sum variation is computed with the following formula:
      D    ⁢                  ⁢    S    ⁢                  ⁢    V    =                    max                  I          ,          J          ,                      {                          y              n                        }                              ⁢                                R          ⁢                                          ⁢          D          ⁢                                          ⁢          S                              =                  max                  I          ,          J          ,                      {                          y              n                        }                              ⁢                                            ∑                          n              =              I                        J                    ⁢                      y            n                                      
For the encoding, the data is divided into blocks of 8 bits (one byte) and inputted to the encoder. Each byte is then divided into two sub-blocks; five first bits and three last bits. The five first bits are encoded by a 5b/6b code to obtain 6 bits. The 5b/6b encoding is based on two tables; a first table contains codewords having more ones than zeros (or the same number of ones and zeros for some codewords in the table) and a second table containing codewords having more zeros than ones (or the same number of ones and zeros for some codewords in the table).
The tables used for the 5b/6b encoding are listed below. In the table “table_5b_6b_RD_plus”, codewords have a number of zeros at least equal to the number of ones. And in the table “table_5b_6b_RD_minus”, codewords have a number of ones at least equal to the number of zeros.
                    table_        ⁢        5        ⁢        b_        ⁢        6        ⁢        b_RD        ⁢        _plus            =              [                                                            011000                ;                100010                ;                010010                ;                110001                ;                                                                                        001010                ;                101001                ;                011001                ;                000111                ;                                                                                        000110                ;                100101                ;                010101                ;                110100                ;                                                                                        001101                ;                101100                ;                011100                ;                101000                ;                                                                                        100100                ;                100011                ;                010011                ;                110010                ;                                                                                        001011                ;                101010                ;                011010                ;                000101                ;                                                                                        001100                ;                100110                ;                010110                ;                001001                ;                                                                                        001110                ;                010001                ;                100001                ;                010100                                                    ]              ;                      table_        ⁢        5        ⁢        b_        ⁢        6        ⁢        b_RD        ⁢        _minus            =              [                                                            100111                ;                011101                ;                101101                ;                110001                ;                                                                                        110101                ;                101001                ;                011001                ;                111000                ;                                                                                        111001                ;                100101                ;                010101                ;                110100                ;                                                                                        001101                ;                101100                ;                011100                ;                010111                ;                                                                                        011011                ;                100011                ;                010011                ;                110010                ;                                                                                        001011                ;                101010                ;                011010                ;                111010                ;                                                                                        110011                ;                100110                ;                010110                ;                110110                ;                                                                                        001110                ;                101110                ;                011110                ;                101011                                                    ]              ;  
As for the 5b/6b encoding, the tables used for the 3b/64 encoding are listed below. In the table “table_3b_4b_RD_plus”, codewords have a number of zeros at least equal to the number of ones. In the table “table_3b_4b_RD_minus”, codewords have a number of ones at least equal to the number of zeros.
                    table_        ⁢        3        ⁢        b_        ⁢        4        ⁢        b_RD        ⁢        _plus            =              [                                                            0100                ;                1001                ;                0101                ;                0011                ;                0010                ;                                                                                        1010                ;                0110                ;                0001                ;                1000                                                    ]              ;                      table_        ⁢        3        ⁢        b_        ⁢        4        ⁢        b_RD        ⁢        _minus            =              [                                                            1011                ;                1001                ;                0101                ;                1100                ;                1101                ;                                                                                        1010                ;                0110                ;                1110                ;                0111                                                    ]              ;  
For example the encoded version of the following byte: 0 0 0 0 1 0 0 1 would be:
0 1 1 0 0 0 1 0 1 1 when the initial running disparity is equal to +1;
1 0 0 1 1 1 0 1 0 0 when the initial running disparity is equal to −1.
If the running disparity (i.e. the number of ones minus the number of zeros for each encoded 6 bits or 4 bits at the output of resp. the 5b/6b and 3b/4b encoders) is equal to +1, the byte to be encoded (i.e. 0 0 0 0 1 0 0 1) is divided into two parts: five first bits (i.e. 0 0 0 0 1) and three last bits (i.e. 0 0 1). The running disparity being equal to +1 then the 5b/6b encodes the five first bits with: 0 1 1 0 0 0 (since 0 0 0 0 1 corresponds to 1 in decimal so the first word in the table is selected as 5b/6b codeword). Hence, the new running disparity is equal to: +1+(2−4)=−1 (“+1” represents the previous/initial running disparity and “(2−4)” is the running disparity of the encoded word “0 1 1 0 0 0”). The updated running disparity being equal to −1, the table table_3b_4b_RD_minus is used for the 3b/4b encoding. The output is equal to: 1 0 1 1. For each byte to be encoded two codewords are possible (positive or negative running disparity).
In documents Young Kim et al., “White paper on the MB810 Line Code for 10 GbE”, proposal for 10 Gigabit Ethernet (IEEE 802.3), and US2005/0012646 a new line coding scheme is described that provides a spectrum having null power at the null frequency and a null power at the Nyquist frequency hence a DC free Nyquist free line code. A code parameter called running alternate sum is considered to construct such a code:
      R    ⁢                  ⁢    A    ⁢                  ⁢    S    =            ∑              n        =        I            J        ⁢                            (                      -            1                    )                n            ⁢              y        n            where I and J are integers.
“RAS” is the sum of the coded output symbols within an arbitrary interval between t=IT and t=JT, with alternating polarity. As for the Running Digital Sum, a parameter named Alternative Sum Variation is computed by the following equation:
      A    ⁢                  ⁢    S    ⁢                  ⁢    V    =                    max                  I          ,          J          ,                      {                          y              n                        }                              ⁢                                R          ⁢                                          ⁢          A          ⁢                                          ⁢          S                              =                  max                  I          ,          J          ,                      {                          y              n                        }                              ⁢                                            ∑                          n              =              I                        J                    ⁢                                                    (                                  -                  1                                )                            n                        ⁢                          y              n                                                  
If the ASV is finite then the bitstream yn has a spectral null at the Nyquist frequency.
For example, the RDS computation for the binary sequence “1100”, gives:
RDS=1+1−1−1=0,
and the RAS is:
RAS=−1+1+1−1=0
The RDS and the RAS of the above binary sequence are null. In addition, shifting this binary sequence, as explained below, provides same values for RAS and RDS:                “1001”=>RDS=1−1−1+1=0                    RAS=−1−1+1+1=0                        “0011”=>RDS=−1−1+1+1=0                    RAS=+1−1−1+1=0                        “0110”=>RDS=−1+1+1−1=0                    RAS=+1+1−1−1=0                        
The line code MB24 has the following codebook {1100,1001,0011,0110}. The MB24 is then a DC free Nyquist free line code. The MB24 encoding is explained in Table 1 below:
TABLE 1MB24 encoding tableUncoded wordCodeword001001010011101100110110
Decoding the MB24 is straightforward. Indeed, one can see from the above table that the two bits in the middle of each codeword corresponds to the uncoded word. The decoder architecture is very simple.
Similar construction can be carried out in order to design the MB12 and the MB34 line codes. The tables 2 and 3 illustrate the encoding process for both codes.
TABLE 2MB12 encoding tableStateInputOutputNext stateS1011S4S1101S2S2011S3S2110S1S3000S2S3110S4S4000S1S4101S3
The MB12 encoder is initialized into the state S1 and then according to the input bit and the table above two output bits are selected and the current state of the encoder is updated.
TABLE 3MB34 encoding tableStateInputOutputNext stateS10000011S1S10010110S1S10101001S1S10111100S1S11001011S2S11011111S3S11101101S4S11110111S4S20000011S2S20010110S2S20101001S2S20111100S2S21000001S1S21010100S1S21101101S3S21110101S4S30000011S3S30010110S3S30101001S3S30111100S3S31000000S1S31010010S2S31101000S2S31110100S4S40000011S4S40010110S4S40101001S4S40111100S4S41000010S1S41011010S2S41101110S3S41111011S3
As for the MB12, The MB34 encoder is initialized into the state S1 and then according to three input bits and the table above four output bits are selected and the current state of the encoder is updated.
An example of the MB810 is illustrated and deeply discussed in document B. Sklar, “Digital Communications: Fundamentals and Applications”, Prentice Hall 2001, ISBN: 0-13-084788-7.
However, there is a need for improvement of the shaping of bitstream spectra in order to match a channel transfer function.